\section{Apéndice A}
\label{sec:ApendiceA}
\newcommand{\real}{\hbox{\bf R}}

\begin{centering}
\large\bf Laboratorio de M\'etodos Num\'ericos - Segundo Cuatrimestre 2012 \\
\large\bf Trabajo Pr\'actico N\'umero 2  \\
\end{centering}

\vskip 1 cm
\hrule
\vskip 0.5 cm

\underline{\bf Introducci\'on}

Cuando miramos una fotograf\'ia o vemos la televisi\'on, no vemos una imagen en 2D, sino que entendemos lo que vemos como un objeto en 3 dimensiones. Es decir, podemos inferir la forma 3D de los objetos a partir de im\'agenes 2D. La pregunta es: podemos simular esta habilidad con una computadora? Existen muchas aplicaciones en las cuales es necesaria esta habilidad, como en inspecci\'on autom\'atica, inferir si hay objetos que obstruyen el camino en la navegaci\'on de un robot, renderizado y animaci\'on. 

Las im\'agenes digitales son una colecci\'on de valores correspondientes a distintos niveles de grises, por ejemplo, en una determinada posici\'on. Estos niveles de grises son en realidad la intensidad lum\'inica captada por la c\'amara en cada detector del chip, que luego se asigna a cada pixel de la imagen en su m\'axima resoluci\'on. La intensidad registrada en un determinado pixel depende de un n\'umero de factores como son: las condiciones de iluminaci\'on, la orientaci\'on de la superficie, y las propiedades del material que componen la superficie. La naturaleza de la iluminaci\'on y su posici\'on pueden cambiar dr\'asticamente la apariencia de una escena.
Para poder reconstruir la forma de un objeto 3D a partir de una imagen 2D primero debemos entender el proceso de formaci\'on de las im\'agenes. El modelo m\'as simple que describe la formaci\'on de una imagen supone que la c\'amara est\'a lo suficientemente lejos de la escena como para tener una representanci\'on escalada del objeto completo, la iluminaci\'on es puntual y est\'a suficientemente alejada. Por \'ultimo, se considera que la superficie del objeto es esencialmente mate y refleja la luz uniformemente en todas direcciones. Esta clase de superficies se denominan Lambertianas. 

\begin{figure}[h]
	\centering
		\includegraphics[width=15cm,height=5cm]{3esferas.jpg}
	\label{fig:3esferas}
\end{figure}

El brillo de una imagen correspondiente a un objeto de superficie Lambertiana depende de la orientaci\'on de la superficie con respecto a la fuente de luz. La intensidad de luz incidente se denota $I_0$ y el \'angulo entre la luz incidente y la normal a la superficie se denomina $\phi$. Luego, la intensidad registrada en cada punto de la imagen esta dado por:
\begin{equation}
I(x,y)=I_0\,\rho\,\cos(\phi)= I_0\,\rho\,(n_x s_x + n_y s_y +n_z s_z)
\end{equation}
donde la superficie normal $\mathbf{n}$, y la direcci\'on de la fuente de luz $\mathbf{s}$, estan dados por:
\begin{equation}
\mathbf{n} =\bordermatrix{& \cr
	          &n_x \cr
	          &n_y \cr  
	          &n_z \cr}, \ 
\mathbf{s} =\bordermatrix{& \cr
	          &s_x \cr
	          &s_y \cr  
	          &s_z \cr}
\end{equation}

La variable $\rho$ es un par\'ametro que representa las propiedades reflectivas de la superficie en la posici\'on $(x,y)$. Debido a que consideramos que la superficie es Lambertiana, la intensidad registrada no depende de la posici\'on de la c\'amara.
La variaci\'on en la intensidad de la imagen depende esencialmente de la orientaci\'on de la superficie con respecto a la fuente de luz.
Para inferir la orientaci\'on de la superficie necesitamos al menos tres im\'agenes cuya fuente de iluminaci\'on difieran entre s\'i. \'Estas pueden ser tres posiciones espaciales distintas de la fuente lum\'inica.
Supongamos tres orientaciones distintas $\mathbf{s}^i$ tal que:
\begin{equation}
\mathbf{s}^1 =\bordermatrix{& \cr
	          &s^1_x \cr
	          &s^1_y \cr  
	          &s^1_z \cr}, 
\mathbf{s}^2 =\bordermatrix{& \cr
	          &s^2_x \cr
	          &s^2_y \cr  
	          &s^2_z \cr},
\mathbf{s}^3 =\bordermatrix{& \cr
	          &s^3_x \cr
	          &s^3_y \cr  
	          &s^3_z \cr}	          
\end{equation}
Cada una de las im\'agenes tendr\'a entonces distintas intensidades $I_1$, $I_2$ e $I_3$, en cada uno de los p\'ixeles correspondientes. Como supusimos una superficie de tipo Lambertiana, las tres intensidades pueden relacionarse con la normal a la superficie y la direcci\'on de la luz incidente correspondiente seg\'un:

\begin{equation}
I_i = I_0\,\rho\,(n_x s^i_x + n_y s^i_y +n_z s^i_z), \ \forall i=1,2,3.
\end{equation}
Como datos conocidos tenemos $I_1$, $I_2$ e $I_3$, y las direcciones de la fuente de iluminaci\'on $\mathbf{s}^1$, $\mathbf{s}^2$ y $\mathbf{s}^3$ de cada imagen. No conocemos la intensidad de la fuente $I_0$, el par\'ametro $\rho$ y la normal $\mathbf{n}$. Podemos sin embargo juntar las inc\'ognitas por coordenadas en una nueva variable $m_x=I_0 \rho n_x$, $m_y=I_0 \rho n_y$ y $m_z=I_0 \rho n_z$. De esta forma tenemos que resolver el siguiente sistema de ecuaciones para cada uno de los p\'ixeles de la imagen y de aqu\'i obtener $\textbf{n}$:

\begin{equation}
\bordermatrix{& \cr
	          &I_1 \cr
	          &I_2 \cr  
	          &I_3 \cr}=
	          \bordermatrix{& \cr
	          &s^1_x & s^1_y & s^1_z \cr
	          &s^2_x & s^2_y & s^2_z \cr
	          &s^3_x & s^3_y & s^3_z
	          \cr} \bordermatrix{& \cr
	          &m_x \cr
	          &m_y \cr  
	          &m_z \cr} \label{eqn:s}
\end{equation}
\begin{equation}
\| \mathbf{m} \|=\left|I_0 \rho \right| \| \mathbf{n} \|,\ % \textrm{  con }
 \| \mathbf{n} \|=1 \label{eqn:norm}
\end{equation}

Finalmente tenemos para cada pixel de la imagen $(x,y,\mathbf{n})$. \\
Ahora necesitamos encontrar la coordenada en $z$ del objeto en el mundo real, a partir de la normal $\mathbf{n}$.
Para ello, sabemos que $\textbf{n}$ es la normal a la superficie real del objeto en 3D y si notamos como $v_1$ y $v_2$
el sistema de coordenadas referido a dicha superficie, se puede inferir pixel a pixel que:

\begin{eqnarray}
v_1 & = & (x+1,y,z_{x+1,y})-(x,y,z_{x,y}) = (1,0,z_{x+1,y}-z_{x,y})\\
v_2 & = & (x,y+1,z_{x,y+1})-(x,y,z_{x,y}) = (0,1,z_{x,y+1}-z_{x,y})
\end{eqnarray}
Como $\mathbf{n}$ debe ser normal a $v_1$ y $v_2$, se deben cumplir las siguientes ecuaciones:
\begin{eqnarray}
 \mathbf{n} \cdot v_1 & = & 0  \\
 \mathbf{n} \cdot v_2 & = & 0 \\
 n_x + n_z (z_{x+1,y}-z_{x,y}) & = & 0 \label{eqn:nx}\\
 n_y + n_z (z_{x,y+1}-z_{x,y}) & = & 0 \label{eqn:ny}
\end{eqnarray}

Las ecuaciones (\ref{eqn:nx}) y (\ref{eqn:ny}), nos permiten construir un sistema de ecuaciones sobredeterminado para cada pixel (teniendo en cuenta los bordes donde no hay vecinos):
\begin{equation}
 M z=b
\end{equation} 
Que resolveremos de la siguiente forma:
\begin{equation}
 M^t M z=M^t b \label{eqn:cuadmin}
\end{equation}
De esta forma, obtenemos $z$ y as\'i la representaci\'on 3D del objeto en las coordenadas $(x,y,z)$.

\underline{\bf Procedimiento}
\begin{enumerate}
	\item Calibraci\'on
	
	Las im\'agenes a analizar ser\'an suministradas por la c\'atedra. Las mismas ya est\'an calibradas, esto quiere decir que pueden usar los valores de cada pixel como intensidades. Deber\'an determinar sobre estas im\'agenes la direcci\'on de iluminaci\'on. Se toma de referencia una esfera cuya superficie es conocida, o sea se conoce el valor de la normal en cualquier punto de la superficie. Tambi\'en se puede calcular la direcci\'on de reflexi\'on del punto m\'as brillante.
	
	\item Construcci\'on del campo normal
	
	Una vez identificadas las direcciones de iluminaci\'on de cada una de las im\'agenes (una por cada direcci\'on de iluminaci\'on que se corresponden con cada esfera de la figura en la p\'agina 1, deber\'a determinarse a partir de la ecuaci\'on (\ref{eqn:s}) el campo normal $\mathbf{m}$.
	\item Normalizaci\'on
	
	Utilizando la ecuaci\'on (\ref{eqn:norm}), se normaliza para cada uno de los canales (RGB, por ejemplo) correspondientes de la imagen, dependiendo de su formato. Si la imagen est\'a en escala de grises, s\'olo existe un canal.
	\item Hallar la profundidad
	
	Por \'ultimo debe resolverse el sistema expresado en la ecuaci\'on (\ref{eqn:cuadmin}) para encontrar $z$. El sistema a resolver cuya matriz es $A=M^tM$, tiene la dimensi\'on de la cantidad de p\'ixeles de la imagen. Por tanto es un sistema muy grande. Sin embargo $A$ tiene gran parte de sus elementos igual a cero, es decir, es una matriz esparsa. En este trabajo pr\'actico se pide hacer uso de esta propiedad de $A$ para poder resolver el sistema lineal. 
\end{enumerate}

Las im\'agenes necesarias estar\'an disponibles para bajar en la p\'agina de la materia.




\vskip 0.5 cm
\hrule
\vskip 0.2 cm

{\bf Fecha de entrega:} \\
%\begin{itemize}
\_ \textit {Formato electr\'onico:} domingo 14 de octubre de 2012, hasta las 23:59 hs, a \texttt{metnum.lab@gmail.com}\\
\_ \textit {Formato f\'isico:} lunes 15 de octubre de 2012, de 17 a 21hs (en el laboratorio).\\
%\end{itemize}
\newpage

%\section{Apéndice B}
%\subsection{Instrucciones de Compilación del TP2}
%TAMBIEN NO OLVIDAR DE IMPRIMIR EL CODIGO DEL TP2!!!!







